1. Field of the Invention
The present invention relates generally to computer disk drives and, more particularly, to the creation and modification of volumes in computer disk drive systems.
2. Related Art
As part of an operating system installation on a network server, a system administrator also configures the disk drive system. Generally, the system administrator installs disk drivers appropriate for the disk controller and sets various parameters to configure the disk drive system. There are a number of configurable features or characteristics of the disk drive system, including the number of volumes the disk drive will include and the number of segments per volume. Volumes are logical portions of disk space created and controlled by a network operating system. Segments are independently-accessible portions of a volume; each volume may be logically divided into one or more segments. The disk drive system may be configured to include one or more volumes on a single physical disk or a single volume may span more than one disk in the disk drive system.
There are a number of advantages and disadvantages associated with each of these configurations. For example, including multiple volumes on a single disk is advantageous in that security is easier to control on a per-volume basis. Also, descriptive naming options are available to clearly identify logical groups of information stored in the disk drive system. On the other hand, artificial segmentation of a disk chops up available disk space and additional effort is required to configure a back-up system by volume.
One of the more common advantages to spanning a volume across multiple disks is the associated increase in performance. Different segments of a volume that are located on different disks may be accessed simultaneously. A drawback to this approach, however, is that the occurrence of a single disk drive fault requires the restoration of the entire multi-disk system. This drawback can be overcome by configuring mirrored or duplexed drives. If one of the drives does crash, the fault-tolerance built into the mirrored system keeps the server up and running. When the drive is replaced, it merely needs to be synchronized with the remaining good drive of the pair to once again be ready for service.
Another configurable feature of the disk drive system is the volume block size. A volume block is the minimum file allocation unit for server disk drives. The size of the volume blocks determines the size of the pieces of data stored in a volume. Volume block size is analogous to the well-known cluster size used in personal computer disk drives.
There are a number of advantages associated with using larger volume block sizes. Disk access time is increased since each disk read and write operation is performed on a larger size piece of data. As a result, fewer disk access operations are required to read or write data to/from a file located on fewer volume blocks. In addition, utilization of a larger volume block size requires the use of less server random access memory (RAM) since there are fewer volume blocks to manage. Further, larger block sizes enables read-ahead operations to operate faster.
However, at least one volume block is allocated for each file stored on the disk drive. Files that do not completely fit into a volume block prevent the remaining portion of the volume block from being used. As a result, larger block sizes prevent the complete utilization of disk space. Thus, even though disk storage space may be available, it cannot be used in systems having large volume block sizes. In addition, since each file requires at least one volume block, the most files that can be stored in a volume is determined by the number of available blocks in that volume. Thus, larger volume block size results in a fewer number of files stored in a volume.
This drawback may be alleviated if the operating system offers what is commonly referred to as suballocation. Suballocation enables more than one file to be stored in a volume block. When suballocation is enabled, the operating system designates specific volume blocks, referred to as suballocation reserved blocks (SRBs), to store a specific, typically narrow range of file sizes or ending data fragments. Ending data fragments are those portions of a file that partially fill a volume block. This provides for an increase in the performance of the operating system through the use of larger volume block sizes while minimizing the wasted storage area associated with larger block sizes. For example, the NetWare.RTM. operating system available from Novell, Incorporated, increases server performance by using larger disk block sizes and dividing each SRB volume block into 512-byte sub-blocks. (NetWare is a registered trademark of Novell, Incorporated). In some versions of the NetWare.RTM. operating system, the volume block sizes are 4 kilobytes. In other versions of NetWare.RTM., the volume block size is configurable, and may be 4, 8, 16, 32 or 64 kilobytes. As a result of suballocation, the greatest amount of wasted space that will occur in the server disk drive systems is 511-bytes regardless of the size of the volume block.
A drawback to current operating systems is that once the volume block size is selected and the disk drive is configured, the size of the volume block cannot be easily or quickly changed. Such a change may be desired to derive the above-noted benefits with different configurations. Also, different operating system features require or at least optimally operate with certain disk drive system configurations. When upgrading an operating system, it may be desirable to change the volume block size to take advantage of operating system features which may not be operational when used with the original volume configuration.
Currently, to change the volume block size, the system administrator must back-up the data currently stored on the volume onto a back-up system. Such a back-up system may be, for example, a tape drive system. Once a duplicate copy of the data on the disk drive system is stored on the back-up system, the system administrator then deletes the volume and recreates a new volume with the new volume block size. Once this new volume is created, the administrator must then restore the data stored on the back-up system back onto the reconfigured disk drive system. This process has been found to be time consuming and potentially dangerous to the integrity of the data. Furthermore, the time required to change the volume block size adversely impacts the availability of the system.
What is needed, therefore, is a means for converting the current volume block size in a disk drive system to a new volume block size without requiring the administrator to delete the original volume and rebuild it with the new volume block size. Such a system should not threaten the integrity of the data and should be capable of being performed efficiently so as to minimize the time the computer system is unavailable to the operating system and users.